package com.example.administrator.boxuegu.utils;

import android.util.Xml;


import com.alibaba.fastjson.JSONObject;
import com.example.administrator.boxuegu.bean.ExercisesDetailBean;
import com.example.administrator.boxuegu.bean.VideoBean;


import org.xmlpull.v1.XmlPullParser;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class AnalysisUtils {

    public static List<VideoBean> getVideoList(InputStream inputStream) throws Exception{
        List<VideoBean> beans;

        StringBuffer str=new StringBuffer();
        InputStreamReader reader=new InputStreamReader(inputStream,"utf-8");//字节流转换成字符流
        BufferedReader bufferedReader=new BufferedReader(reader);
        String line="";
        line=bufferedReader.readLine();
        while (line!=null){//每次循环读取一行，将该行接到字符串的后面
            str.append(line);
            str.append("\n");
            line=bufferedReader.readLine();
        }
        beans= JSONObject.parseArray(str.toString(),VideoBean.class);
        return beans;
    }

    public static ArrayList<ExercisesDetailBean> getExercisesInfos(InputStream inputStream) throws Exception{
        //该方法是将inputStream文件解析出来成选择题集合，集合中每一个元素就是一个选择题对象
        XmlPullParser parser= Xml.newPullParser();
        parser.setInput(inputStream,"utf-8");//可能抛出编码格式异常
        ArrayList<ExercisesDetailBean> beans=new ArrayList<ExercisesDetailBean>();
        int type=parser.getEventType();//可能抛出异常，解析失败
        ExercisesDetailBean bean=null;
        while(type!=XmlPullParser.END_DOCUMENT){
            //接下来分析本次读取到的“有意义的部分”
            if(type==XmlPullParser.START_TAG){
                if(parser.getName().equals("exercises")){//表示一个选择题解析开始
                    bean=new ExercisesDetailBean();
                }else if(parser.getName().equals("subject")){
                    bean.subject=parser.nextText();//先将parser指针往后移到下一个有意义部分，读取当前部分的内容
                }else if(parser.getName().equals("a")){
                    bean.a=parser.nextText();
                }else if(parser.getName().equals("b")){
                    bean.b=parser.nextText();
                }else if(parser.getName().equals("c")){
                    bean.c=parser.nextText();
                }else if(parser.getName().equals("d")){
                    bean.d=parser.nextText();
                }else if(parser.getName().equals("answer")){
                    bean.answer=Integer.valueOf(parser.nextText());
                }
            }else if(type==XmlPullParser.END_TAG){
                if(parser.getName().equals("exercises")){//表示一个选择题解析完毕
                    bean.selected=0;
                    beans.add(bean);
                }
            }
            //读取下一个“有意义的部分”
            type=parser.next();//将parser移到下一个有意义的部分，并将类型读给type
        }
        return beans;
    }
}
